package com.hskn.hss.module.tlequipbind.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hskn.hss.core.annotation.SysLog;
import com.hskn.hss.core.enums.BusinessType;
import com.hskn.hss.entity.AjaxResult;
import com.hskn.hss.exception.HssException;
import com.hskn.hss.module.alarmsheshi.mapper.AlarmSheshiMapper;
import com.hskn.hss.module.tlempsalary.entity.TlEmpSalary;
import com.hskn.hss.module.tlequip.entity.TlEquip;
import com.hskn.hss.module.tlequip.mapper.TlEquipMapper;
import com.hskn.hss.module.tlequipbind.entity.TlEquipBind;
import com.hskn.hss.module.tlequipbind.mapper.TlEquipBindMapper;
import com.hskn.hss.module.tlequipbind.service.ITlEquipBindService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Date;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author hskn
 * @since 2021-06-04
 */
@Service
public class TlEquipBindServiceImpl extends ServiceImpl<TlEquipBindMapper, TlEquipBind> implements ITlEquipBindService {

    @Resource
    TlEquipMapper tlEquipMapper;
    @Resource
    TlEquipBindMapper tlEquipBindMapper;

//    @SysLog(businessType = BusinessType.UPDATE, tableName = "tl_equip", idKey = "id", bean = TlEquip.class, beanMapper = TlEquipMapper.class, names = "equipname")
    @Override
    @Transactional
    public AjaxResult bind(JSONObject params) throws HssException {
        TlEquipBind tlEquipBind = params.getObject("data", TlEquipBind.class);
        TlEquip tlEquip = tlEquipMapper.selectById(tlEquipBind.getEquipid());
        tlEquip.setBinddeptid(tlEquipBind.getItemdept());
        tlEquip.setBindobjid(tlEquipBind.getItemid());
        tlEquip.setBindobjname(tlEquipBind.getItemname());
        tlEquip.setBindtype(tlEquipBind.getType());
        tlEquip.setBindstatus(tlEquipBind.getStatus());
        tlEquipMapper.updateById(tlEquip);

        QueryWrapper<TlEquipBind> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().eq(TlEquipBind::getEquipid, tlEquipBind.getEquipid());
        TlEquipBind tlEquipBind2 = tlEquipBindMapper.selectOne(queryWrapper);

        if (tlEquipBind2 == null) {
            tlEquipBind.setBindtime(new Date());
            tlEquipBindMapper.insert(tlEquipBind);
        } else {
            tlEquipBindMapper.deleteById(tlEquipBind2);
            if (tlEquipBind.getItemid() != null && !tlEquipBind.getItemid().equals("")) {
                tlEquipBindMapper.insert(tlEquipBind);
            }

        }
        return AjaxResult.success("操作成功");
    }
}
